1. Field of the Invention
The present invention relates to computer systems, software architectures and programs, and more particularly to a method, system and computer program product for evaluating Java programs.
2. Description of the Related Art
Java is a robust, portable object-oriented programming language developed by Sun Microsystems, Inc., that is gaining wide acceptance for writing code for the Internet and World Wide Web (hereinafter, “Web”). Java attains its portability through use of a specially-designed virtual machine (“VM”). This virtual machine is also referred to as a “Java Virtual Machine”, or “JVM”. The virtual machine isolates the details of the underlying hardware from the compiler used to compile the Java programming instructions. The compiled code, referred to as Java “byte code”, then runs on top of a JVM, where the JVM is tailored to a specific operating environment.
The nature of Java programming allows designers to approach software solutions in many different ways. Based upon specifications and goals, each software vendor for a particular application will implement their solution slightly differently. For example, among the various JVM vendors, each emphasis their solution over others by noting particular advantages provided by their implementation such as faster performance or higher security. However, it is very difficult for Java programmers to learn where each vendor has chosen to optimize their particular implementation of a Java solution. It would be valuable for a software engineer or application writer to understand the strengths and weaknesses of each particular implementation of a Java program so that the solution with the best practices can be integrated or utilized in the application the programmer is designing. For example, it would be valuable for the application designer to understand the profile of various JVMs in order to select the one with the most appropriate best practices for packaging with the Java programmer's application.